'''
1）定义一个lambda函数，实现功能：
    参数为x,判断该参数是奇数还是偶数，是奇数返回False,是偶数返回True
使用高阶函数实现以下功能
2） list1 = [5,23,1,5,7,98,6,7]
    将列表中的所有数值,都改成它的平方+10
3）lst = ["tom","lily",'张三',"lucy","阿斯蒂芬","sdafa"]
将名字中姓张的元素排除掉
4）定义一个装饰器，实现功能：
判断一个函数的用户名参数是不是admin,是的话执行函数，
不是的话，打印告知没有权限执行该方法
抄写：1）什么是装饰器
          2）99乘法表的代码
          3）常见的高阶函数有哪些，分别是做什么的？
'''

def Part1():
    # 1）定义一个lambda函数，实现功能：
    # 参数为x, 判断该参数是奇数还是偶数，是奇数返回False, 是偶数返回True
    a=lambda x:x%2==0
    num = int(input())
    b=a(num)
    if b==0:
        print(b)
    else:
        print(b)
def Part2():
    list1 = [5, 23, 1, 5, 7, 98, 6, 7]
    # 将列表中的所有数值, 都改成它的平方 + 10
    return list(map(lambda x:(x**2)+10,list1))


def Part3():
    lst = ["tom", "lily", '张三', "lucy", "阿斯蒂芬", "sdafa"]
    # 将名字中姓张的元素排除掉
    return list(filter(lambda x: not x.startswith('张') ,lst))


def admin(func):
        def wrapper(users):
            if users =='admin':
                func(users)
            else:
                return print('无权限')
        return wrapper

@admin
def Part4(users):
    # 4）定义一个装饰器，实现功能：
    # 判断一个函数的用户名参数是不是admin, 是的话执行函数，
    # 不是的话，打印告知没有权限执行该方法
    print(f'{users},welcome!')

if __name__ == '__main__':
    # Part1()
    # print(Part2())
    # print(Part3())
    Part4('admin')

